import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.util.ArrayList;


public class gy {

	/**
	 * @param args
	 * @throws Exception
	 */
	
	//static BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
	static BufferedReader reader;
	static boolean debug = false;
	
	public static void main(String[] args) throws Exception {
		reader = new BufferedReader(new FileReader("graveyard_input.txt"));
		new gy().run();
		
	}
	
	private void getMeSaveThroughScaryGraveyard(int w, int h, String[][] adjMatrix, ArrayList<int[]> edges) {
		int vertices = w*h;
		long[][] d = new long[w][h];
		for(int i=0; i< w; i++)
			for(int j=0; j< h; j++)
				d[i][j] = Integer.MAX_VALUE;
		
		d[0][0] = 0;
		for(int i=1; i< vertices; i++)
			for( int[] edge: edges )
				if( d[ edge[0] ][ edge[1] ] != Integer.MAX_VALUE    && ( d[ edge[0] ][ edge[1] ] + edge[4] < d[ edge[2] ][ edge[3] ] )  ) { d[ edge[2] ][ edge[3] ] = d[ edge[0] ][ edge[1] ] + edge[4]; };
	
		
				
		for( int[] edge: edges )
			if(   d[ edge[0] ][ edge[1] ] != Integer.MAX_VALUE   &&   (d[ edge[0] ][ edge[1] ] + edge[4] < d[ edge[2] ][ edge[3] ])  ) {
				System.out.println("Never");
				return;
			}
				
		if(d[w-1][h-1] == Integer.MAX_VALUE){
			System.out.println("Impossible");
			return;
		}



		System.out.println(d[w-1][h-1]);
	}
	
	void run() throws Exception{
		String line = reader.readLine();
		if(line.equals("0 0")) {reader.close(); return;}
		String[] split = line.split(" ");
		int W = Integer.parseInt(split[0]);
		int H = Integer.parseInt(split[1]);
		String[][] adjMatrix = new String[W][H];
		for(int i=0; i<W;i++)
			for(int j=0; j<H;j++)
				adjMatrix[ i ][ j ] = "+";
		
		adjMatrix[ 0 ][ 0 ] = "s";
		adjMatrix[ W-1 ][ H-1 ] = "f";
		
		ArrayList<int[]> edges = new ArrayList<int[]>();
		
		int[][][] holes = new int[W][H][];
		
		line = reader.readLine();
		int G = Integer.parseInt(line);
		for(int i=0; i< G;i++){
			line = reader.readLine();
			split = line.split(" ");
			adjMatrix[ Integer.parseInt(split[0]) ][ Integer.parseInt(split[1]) ] = "G";
		}
		
		line = reader.readLine();
		int E = Integer.parseInt(line);
		for(int i=0; i< E;i++){
			line = reader.readLine();
			split = line.split(" ");
			int[] intsplit = new int[3];
			intsplit[0] = Integer.parseInt(split[2]);
			intsplit[1] = Integer.parseInt(split[3]);
			intsplit[2] = Integer.parseInt(split[4]);
			adjMatrix[ Integer.parseInt(split[0]) ][ Integer.parseInt(split[1]) ] = "H";
			holes[ Integer.parseInt(split[0]) ][ Integer.parseInt(split[1]) ] = intsplit;
		}
		
		for(int i=0; i<W;i++){
			for(int j=0; j<H;j++){
				if(adjMatrix[ i ][ j ].equals("G")) continue;
				if(adjMatrix[ i ][ j ].equals("f")) continue;
				if(adjMatrix[ i ][ j ].equals("H")) {
					int[] edge = new int[5];
					int[] tmp = holes[i][j];
					edge[0] = i;
					edge[1] = j;
					edge[2] = tmp[0];
					edge[3] = tmp[1];
					edge[4] = tmp[2];
					edges.add(edge);
					continue;
				}
				int[] northedge = new int[5];
				int[] eastedge = new int[5];
				int[] southedge = new int[5];
				int[] westedge = new int[5];
				northedge[0] = eastedge[0] = southedge[0] = westedge[0] = i;
				northedge[1] = eastedge[1] = southedge[1] = westedge[1] = j;
				northedge[4] = eastedge[4] = southedge[4] = westedge[4] = 1;
				int itmp = i + 1;
				if(itmp < W){
					eastedge[2] = itmp;
					eastedge[3] = eastedge[1];
					if(!adjMatrix[ itmp ][ j ].equals("G")){
						edges.add(eastedge);
					}
				}
				int jtmp = j +1;
				if(jtmp < H){
					southedge[3] = jtmp;
					southedge[2] = southedge[0];
					if(!adjMatrix[ i ][ jtmp ].equals("G")){
						edges.add(southedge);
					}
				}
				itmp = i - 1;
				if(itmp >= 0){
					westedge[2] = itmp;
					westedge[3] = westedge[1];
					if(   !(adjMatrix[ itmp ][ j ].equals("G"))    ){
						edges.add(westedge);
					}
				}
				jtmp = j - 1;
				if(jtmp >= 0){
					northedge[3] = jtmp;
					northedge[2] = northedge[0];
					if(   !(adjMatrix[ i ][ jtmp ].equals("G"))   ){
						edges.add(northedge);
					}
				}
			}
		}

		if(debug){
			for(int i=0; i<W;i++){
				for(int j=0; j<H;j++){
					System.out.print(adjMatrix[ i ][ j ]);
				}
				System.out.println();
			}
			
			System.out.println("***");
			
			for(int[] edge: edges){
				for(int val:edge)
				System.out.print(val+" ");
				System.out.println();
			}
		}
		new gy().getMeSaveThroughScaryGraveyard(W, H, adjMatrix, edges);
		new gy().run();
	}
}
